/**
 * Copyright 2010 Powersi. All rights reserved.
 * 
 */
package com.powersi.hygeia.framework.jdbclogger.oracle10g;

import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
import java.net.URL;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Date;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.List;

import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleParameterMetaData;
import oracle.jdbc.OracleResultSetCache;
import oracle.jdbc.dcn.DatabaseChangeRegistration;
import oracle.sql.ARRAY;
import oracle.sql.BFILE;
import oracle.sql.BINARY_DOUBLE;
import oracle.sql.BINARY_FLOAT;
import oracle.sql.BLOB;
import oracle.sql.CHAR;
import oracle.sql.CLOB;
import oracle.sql.CustomDatum;
import oracle.sql.CustomDatumFactory;
import oracle.sql.DATE;
import oracle.sql.Datum;
import oracle.sql.INTERVALDS;
import oracle.sql.INTERVALYM;
import oracle.sql.NUMBER;
import oracle.sql.OPAQUE;
import oracle.sql.ORAData;
import oracle.sql.ORADataFactory;
import oracle.sql.RAW;
import oracle.sql.REF;
import oracle.sql.ROWID;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import oracle.sql.TIMESTAMP;
import oracle.sql.TIMESTAMPLTZ;
import oracle.sql.TIMESTAMPTZ;

import com.powersi.hygeia.framework.jdbclogger.CallableStatementWrapper;

public class OracleCallableStatementWrapper extends CallableStatementWrapper
		implements oracle.jdbc.OracleCallableStatement {
	private OracleCallableStatement _oracleStatement;

	public OracleCallableStatementWrapper(OracleCallableStatement statement,
			String sql, List formatters) {
		super(statement, sql, formatters);

		_oracleStatement = statement;
	}

	public ARRAY getARRAY(int arg0) throws SQLException {
		return _oracleStatement.getARRAY(arg0);
	}

	@SuppressWarnings("deprecation")
	public Object getAnyDataEmbeddedObject(int arg0) throws SQLException {
		return _oracleStatement.getAnyDataEmbeddedObject(arg0);
	}

	public InputStream getAsciiStream(int arg0) throws SQLException {
		return _oracleStatement.getAsciiStream(arg0);
	}

	public BFILE getBFILE(int arg0) throws SQLException {
		return _oracleStatement.getBFILE(arg0);
	}

	public BLOB getBLOB(int arg0) throws SQLException {
		return _oracleStatement.getBLOB(arg0);
	}

	public InputStream getBinaryStream(int arg0) throws SQLException {
		return _oracleStatement.getBinaryStream(arg0);
	}

	public CHAR getCHAR(int arg0) throws SQLException {
		return _oracleStatement.getCHAR(arg0);
	}

	public CLOB getCLOB(int arg0) throws SQLException {
		return _oracleStatement.getCLOB(arg0);
	}

	public Reader getCharacterStream(int arg0) throws SQLException {
		return _oracleStatement.getCharacterStream(arg0);
	}

	public ResultSet getCursor(int arg0) throws SQLException {
		return _oracleStatement.getCursor(arg0);
	}

	@SuppressWarnings("deprecation")
	public Object getCustomDatum(int arg0, CustomDatumFactory arg1)
			throws SQLException {
		return _oracleStatement.getCustomDatum(arg0, arg1);
	}

	public DATE getDATE(int arg0) throws SQLException {
		return _oracleStatement.getDATE(arg0);
	}

	public INTERVALDS getINTERVALDS(int arg0) throws SQLException {
		return _oracleStatement.getINTERVALDS(arg0);
	}

	public INTERVALYM getINTERVALYM(int arg0) throws SQLException {
		return _oracleStatement.getINTERVALYM(arg0);
	}

	public NUMBER getNUMBER(int arg0) throws SQLException {
		return _oracleStatement.getNUMBER(arg0);
	}

	public OPAQUE getOPAQUE(int arg0) throws SQLException {
		return _oracleStatement.getOPAQUE(arg0);
	}

	public Object getORAData(int arg0, ORADataFactory arg1) throws SQLException {
		return _oracleStatement.getORAData(arg0, arg1);
	}

	public Datum getOracleObject(int arg0) throws SQLException {
		return _oracleStatement.getOracleObject(arg0);
	}

	public Datum[] getOraclePlsqlIndexTable(int arg0) throws SQLException {
		return _oracleStatement.getOraclePlsqlIndexTable(arg0);
	}

	public Object getPlsqlIndexTable(int arg0) throws SQLException {
		return _oracleStatement.getPlsqlIndexTable(arg0);
	}

	public Object getPlsqlIndexTable(int arg0, Class arg1) throws SQLException {
		return _oracleStatement.getPlsqlIndexTable(arg0, arg1);
	}

	public RAW getRAW(int arg0) throws SQLException {
		return _oracleStatement.getRAW(arg0);
	}

	public REF getREF(int arg0) throws SQLException {
		return _oracleStatement.getREF(arg0);
	}

	public ROWID getROWID(int arg0) throws SQLException {
		return _oracleStatement.getROWID(arg0);
	}

	public STRUCT getSTRUCT(int arg0) throws SQLException {
		return _oracleStatement.getSTRUCT(arg0);
	}

	public TIMESTAMP getTIMESTAMP(int arg0) throws SQLException {
		return _oracleStatement.getTIMESTAMP(arg0);
	}

	public TIMESTAMPLTZ getTIMESTAMPLTZ(int arg0) throws SQLException {
		return _oracleStatement.getTIMESTAMPLTZ(arg0);
	}

	public TIMESTAMPTZ getTIMESTAMPTZ(int arg0) throws SQLException {
		return _oracleStatement.getTIMESTAMPTZ(arg0);
	}

	public InputStream getUnicodeStream(int arg0) throws SQLException {
		return _oracleStatement.getUnicodeStream(arg0);
	}

	public void registerIndexTableOutParameter(int arg0, int arg1, int arg2,
			int arg3) throws SQLException {
		_oracleStatement.registerIndexTableOutParameter(arg0, arg1, arg2, arg3);
	}

	public void registerOutParameter(int arg0, int arg1, int arg2, int arg3)
			throws SQLException {
		_oracleStatement.registerOutParameter(arg0, arg1, arg2, arg3);
	}

	public void registerOutParameter(String arg0, int arg1, int arg2, int arg3)
			throws SQLException {
		_oracleStatement.registerOutParameter(arg0, arg1, arg2, arg3);
	}

	@SuppressWarnings("deprecation")
	public void registerOutParameterBytes(int arg0, int arg1, int arg2, int arg3)
			throws SQLException {
		_oracleStatement.registerOutParameterBytes(arg0, arg1, arg2, arg3);
	}

	@SuppressWarnings("deprecation")
	public void registerOutParameterChars(int arg0, int arg1, int arg2, int arg3)
			throws SQLException {
		_oracleStatement.registerOutParameterChars(arg0, arg1, arg2, arg3);
	}

	public int sendBatch() throws SQLException {
		return _oracleStatement.sendBatch();
	}

	public void setBinaryDouble(String arg0, BINARY_DOUBLE arg1)
			throws SQLException {
		_oracleStatement.setBinaryDouble(arg0, arg1);
	}

	public void setBinaryFloat(String arg0, BINARY_FLOAT arg1)
			throws SQLException {
		_oracleStatement.setBinaryFloat(arg0, arg1);
	}

	public void setBytesForBlob(String arg0, byte[] arg1) throws SQLException {
		_oracleStatement.setBytesForBlob(arg0, arg1);
	}

	public void setExecuteBatch(int arg0) throws SQLException {
		_oracleStatement.setExecuteBatch(arg0);
	}

	public void setStringForClob(String arg0, String arg1) throws SQLException {
		_oracleStatement.setStringForClob(arg0, arg1);
	}

	public OracleParameterMetaData OracleGetParameterMetaData()
			throws SQLException {
		return _oracleStatement.OracleGetParameterMetaData();
	}

	public void defineParameterType(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.defineParameterType(arg0, arg1, arg2);
	}

	public void defineParameterTypeBytes(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.defineParameterTypeBytes(arg0, arg1, arg2);
	}

	public void defineParameterTypeChars(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.defineParameterTypeChars(arg0, arg1, arg2);
	}

	public int getExecuteBatch() {
		return _oracleStatement.getExecuteBatch();
	}

	public ResultSet getReturnResultSet() throws SQLException {
		return _oracleStatement.getReturnResultSet();
	}

	public void registerReturnParameter(int arg0, int arg1) throws SQLException {
		_oracleStatement.registerReturnParameter(arg0, arg1);
	}

	public void registerReturnParameter(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.registerReturnParameter(arg0, arg1, arg2);
	}

	public void registerReturnParameter(int arg0, int arg1, String arg2)
			throws SQLException {
		_oracleStatement.registerReturnParameter(arg0, arg1, arg2);
	}

	public void setARRAY(int arg0, ARRAY arg1) throws SQLException {
		_oracleStatement.setARRAY(arg0, arg1);
	}

	public void setARRAYAtName(String arg0, ARRAY arg1) throws SQLException {
		_oracleStatement.setARRAYAtName(arg0, arg1);
	}

	public void setArrayAtName(String arg0, Array arg1) throws SQLException {
		_oracleStatement.setArrayAtName(arg0, arg1);
	}

	public void setAsciiStreamAtName(String arg0, InputStream arg1, int arg2)
			throws SQLException {
		_oracleStatement.setAsciiStreamAtName(arg0, arg1, arg2);
	}

	public void setBFILE(int arg0, BFILE arg1) throws SQLException {
		_oracleStatement.setBFILE(arg0, arg1);
	}

	public void setBFILEAtName(String arg0, BFILE arg1) throws SQLException {
		_oracleStatement.setBFILEAtName(arg0, arg1);
	}

	public void setBLOB(int arg0, BLOB arg1) throws SQLException {
		_oracleStatement.setBLOB(arg0, arg1);
	}

	public void setBLOBAtName(String arg0, BLOB arg1) throws SQLException {
		_oracleStatement.setBLOBAtName(arg0, arg1);
	}

	public void setBfile(int arg0, BFILE arg1) throws SQLException {
		_oracleStatement.setBfile(arg0, arg1);
	}

	public void setBfileAtName(String arg0, BFILE arg1) throws SQLException {
		_oracleStatement.setBfileAtName(arg0, arg1);
	}

	public void setBigDecimalAtName(String arg0, BigDecimal arg1)
			throws SQLException {
		_oracleStatement.setBigDecimalAtName(arg0, arg1);
	}

	public void setBinaryDouble(int arg0, double arg1) throws SQLException {
		_oracleStatement.setBinaryDouble(arg0, arg1);
	}

	public void setBinaryDouble(int arg0, BINARY_DOUBLE arg1)
			throws SQLException {
		_oracleStatement.setBinaryDouble(arg0, arg1);
	}

	public void setBinaryDoubleAtName(String arg0, double arg1)
			throws SQLException {
		_oracleStatement.setBinaryDoubleAtName(arg0, arg1);
	}

	public void setBinaryDoubleAtName(String arg0, BINARY_DOUBLE arg1)
			throws SQLException {
		_oracleStatement.setBinaryDoubleAtName(arg0, arg1);
	}

	public void setBinaryFloat(int arg0, float arg1) throws SQLException {
		_oracleStatement.setBinaryFloat(arg0, arg1);
	}

	public void setBinaryFloat(int arg0, BINARY_FLOAT arg1) throws SQLException {
		_oracleStatement.setBinaryFloat(arg0, arg1);
	}

	public void setBinaryFloatAtName(String arg0, float arg1)
			throws SQLException {
		_oracleStatement.setBinaryFloatAtName(arg0, arg1);
	}

	public void setBinaryFloatAtName(String arg0, BINARY_FLOAT arg1)
			throws SQLException {
		_oracleStatement.setBinaryFloatAtName(arg0, arg1);
	}

	public void setBinaryStreamAtName(String arg0, InputStream arg1, int arg2)
			throws SQLException {
		_oracleStatement.setBinaryStreamAtName(arg0, arg1, arg2);
	}

	public void setBlobAtName(String arg0, Blob arg1) throws SQLException {
		_oracleStatement.setBlobAtName(arg0, arg1);
	}

	public void setBooleanAtName(String arg0, boolean arg1) throws SQLException {
		_oracleStatement.setBooleanAtName(arg0, arg1);
	}

	public void setByteAtName(String arg0, byte arg1) throws SQLException {
		_oracleStatement.setByteAtName(arg0, arg1);
	}

	public void setBytesAtName(String arg0, byte[] arg1) throws SQLException {
		_oracleStatement.setBytesAtName(arg0, arg1);
	}

	public void setBytesForBlob(int arg0, byte[] arg1) throws SQLException {
		_oracleStatement.setBytesForBlob(arg0, arg1);
	}

	public void setBytesForBlobAtName(String arg0, byte[] arg1)
			throws SQLException {
		_oracleStatement.setBytesForBlobAtName(arg0, arg1);
	}

	public void setCHAR(int arg0, CHAR arg1) throws SQLException {
		_oracleStatement.setCHAR(arg0, arg1);
	}

	public void setCHARAtName(String arg0, CHAR arg1) throws SQLException {
		_oracleStatement.setCHARAtName(arg0, arg1);
	}

	public void setCLOB(int arg0, CLOB arg1) throws SQLException {
		_oracleStatement.setCLOB(arg0, arg1);
	}

	public void setCLOBAtName(String arg0, CLOB arg1) throws SQLException {
		_oracleStatement.setCLOBAtName(arg0, arg1);
	}

	public void setCheckBindTypes(boolean arg0) {
		_oracleStatement.setCheckBindTypes(arg0);
	}

	public void setClobAtName(String arg0, Clob arg1) throws SQLException {
		_oracleStatement.setClobAtName(arg0, arg1);
	}

	@SuppressWarnings("deprecation")
	public void setCursor(int arg0, ResultSet arg1) throws SQLException {
		_oracleStatement.setCursor(arg0, arg1);
	}

	public void setCursorAtName(String arg0, ResultSet arg1)
			throws SQLException {
		_oracleStatement.setCursorAtName(arg0, arg1);
	}

	@SuppressWarnings("deprecation")
	public void setCustomDatum(int arg0, CustomDatum arg1) throws SQLException {
		_oracleStatement.setCustomDatum(arg0, arg1);
	}

	public void setCustomDatumAtName(String arg0, CustomDatum arg1)
			throws SQLException {
		_oracleStatement.setCustomDatumAtName(arg0, arg1);
	}

	public void setDATE(int arg0, DATE arg1) throws SQLException {
		_oracleStatement.setDATE(arg0, arg1);
	}

	public void setDATEAtName(String arg0, DATE arg1) throws SQLException {
		_oracleStatement.setDATEAtName(arg0, arg1);
	}

	public void setDateAtName(String arg0, Date arg1) throws SQLException {
		_oracleStatement.setDateAtName(arg0, arg1);
	}

	public void setDisableStmtCaching(boolean arg0) {
		_oracleStatement.setDisableStmtCaching(arg0);
	}

	public void setDoubleAtName(String arg0, double arg1) throws SQLException {
		_oracleStatement.setDoubleAtName(arg0, arg1);
	}

	public void setFixedCHAR(int arg0, String arg1) throws SQLException {
		_oracleStatement.setFixedCHAR(arg0, arg1);
	}

	public void setFixedCHARAtName(String arg0, String arg1)
			throws SQLException {
		_oracleStatement.setFixedCHARAtName(arg0, arg1);
	}

	public void setFloatAtName(String arg0, float arg1) throws SQLException {
		_oracleStatement.setFloatAtName(arg0, arg1);
	}

	public void setFormOfUse(int arg0, short arg1) {
		_oracleStatement.setFormOfUse(arg0, arg1);
	}

	public void setINTERVALDS(int arg0, INTERVALDS arg1) throws SQLException {
		_oracleStatement.setINTERVALDS(arg0, arg1);
	}

	public void setINTERVALDSAtName(String arg0, INTERVALDS arg1)
			throws SQLException {
		_oracleStatement.setINTERVALDSAtName(arg0, arg1);
	}

	public void setINTERVALYM(int arg0, INTERVALYM arg1) throws SQLException {
		_oracleStatement.setINTERVALYM(arg0, arg1);
	}

	public void setINTERVALYMAtName(String arg0, INTERVALYM arg1)
			throws SQLException {
		_oracleStatement.setINTERVALYMAtName(arg0, arg1);
	}

	public void setIntAtName(String arg0, int arg1) throws SQLException {
		_oracleStatement.setIntAtName(arg0, arg1);
	}

	public void setLongAtName(String arg0, long arg1) throws SQLException {
		_oracleStatement.setLongAtName(arg0, arg1);
	}

	public void setNUMBER(int arg0, NUMBER arg1) throws SQLException {
		_oracleStatement.setNUMBER(arg0, arg1);
	}

	public void setNUMBERAtName(String arg0, NUMBER arg1) throws SQLException {
		_oracleStatement.setNUMBERAtName(arg0, arg1);
	}

	public void setNullAtName(String arg0, int arg1) throws SQLException {
		_oracleStatement.setNullAtName(arg0, arg1);
	}

	public void setNullAtName(String arg0, int arg1, String arg2)
			throws SQLException {
		_oracleStatement.setNullAtName(arg0, arg1, arg2);
	}

	public void setOPAQUE(int arg0, OPAQUE arg1) throws SQLException {
		_oracleStatement.setOPAQUE(arg0, arg1);
	}

	public void setOPAQUEAtName(String arg0, OPAQUE arg1) throws SQLException {
		_oracleStatement.setOPAQUEAtName(arg0, arg1);
	}

	public void setORAData(int arg0, ORAData arg1) throws SQLException {
		_oracleStatement.setORAData(arg0, arg1);
	}

	public void setORADataAtName(String arg0, ORAData arg1) throws SQLException {
		_oracleStatement.setORADataAtName(arg0, arg1);
	}

	public void setObjectAtName(String arg0, Object arg1) throws SQLException {
		_oracleStatement.setObjectAtName(arg0, arg1);
	}

	public void setObjectAtName(String arg0, Object arg1, int arg2)
			throws SQLException {
		_oracleStatement.setObjectAtName(arg0, arg1, arg2);
	}

	public void setObjectAtName(String arg0, Object arg1, int arg2, int arg3)
			throws SQLException {
		_oracleStatement.setObjectAtName(arg0, arg1, arg2, arg3);
	}

	public void setOracleObject(int arg0, Datum arg1) throws SQLException {
		_oracleStatement.setOracleObject(arg0, arg1);
	}

	public void setOracleObjectAtName(String arg0, Datum arg1)
			throws SQLException {
		_oracleStatement.setOracleObjectAtName(arg0, arg1);
	}

	public void setPlsqlIndexTable(int arg0, Object arg1, int arg2, int arg3,
			int arg4, int arg5) throws SQLException {
		_oracleStatement.setPlsqlIndexTable(arg0, arg1, arg2, arg3, arg4, arg5);
	}

	public void setRAW(int arg0, RAW arg1) throws SQLException {
		_oracleStatement.setRAW(arg0, arg1);
	}

	public void setRAWAtName(String arg0, RAW arg1) throws SQLException {
		_oracleStatement.setRAWAtName(arg0, arg1);
	}

	public void setREF(int arg0, REF arg1) throws SQLException {
		_oracleStatement.setREF(arg0, arg1);
	}

	public void setREFAtName(String arg0, REF arg1) throws SQLException {
		_oracleStatement.setREFAtName(arg0, arg1);
	}

	public void setROWID(int arg0, ROWID arg1) throws SQLException {
		_oracleStatement.setROWID(arg0, arg1);
	}

	public void setROWIDAtName(String arg0, ROWID arg1) throws SQLException {
		_oracleStatement.setROWIDAtName(arg0, arg1);
	}

	public void setRefAtName(String arg0, Ref arg1) throws SQLException {
		_oracleStatement.setRefAtName(arg0, arg1);
	}

	public void setRefType(int arg0, REF arg1) throws SQLException {
		_oracleStatement.setRefType(arg0, arg1);
	}

	public void setRefTypeAtName(String arg0, REF arg1) throws SQLException {
		_oracleStatement.setRefTypeAtName(arg0, arg1);
	}

	public void setSTRUCT(int arg0, STRUCT arg1) throws SQLException {
		_oracleStatement.setSTRUCT(arg0, arg1);
	}

	public void setSTRUCTAtName(String arg0, STRUCT arg1) throws SQLException {
		_oracleStatement.setSTRUCTAtName(arg0, arg1);
	}

	public void setShortAtName(String arg0, short arg1) throws SQLException {
		_oracleStatement.setShortAtName(arg0, arg1);
	}

	public void setStringAtName(String arg0, String arg1) throws SQLException {
		_oracleStatement.setStringAtName(arg0, arg1);
	}

	public void setStringForClob(int arg0, String arg1) throws SQLException {
		_oracleStatement.setStringForClob(arg0, arg1);
	}

	public void setStringForClobAtName(String arg0, String arg1)
			throws SQLException {
		_oracleStatement.setStringForClobAtName(arg0, arg1);
	}

	public void setStructDescriptor(int arg0, StructDescriptor arg1)
			throws SQLException {
		_oracleStatement.setStructDescriptor(arg0, arg1);
	}

	public void setStructDescriptorAtName(String arg0, StructDescriptor arg1)
			throws SQLException {
		_oracleStatement.setStructDescriptorAtName(arg0, arg1);
	}

	public void setTIMESTAMP(int arg0, TIMESTAMP arg1) throws SQLException {
		_oracleStatement.setTIMESTAMP(arg0, arg1);
	}

	public void setTIMESTAMPAtName(String arg0, TIMESTAMP arg1)
			throws SQLException {
		_oracleStatement.setTIMESTAMPAtName(arg0, arg1);
	}

	public void setTIMESTAMPLTZ(int arg0, TIMESTAMPLTZ arg1)
			throws SQLException {
		_oracleStatement.setTIMESTAMPLTZ(arg0, arg1);
	}

	public void setTIMESTAMPLTZAtName(String arg0, TIMESTAMPLTZ arg1)
			throws SQLException {
		_oracleStatement.setTIMESTAMPLTZAtName(arg0, arg1);
	}

	public void setTIMESTAMPTZ(int arg0, TIMESTAMPTZ arg1) throws SQLException {
		_oracleStatement.setTIMESTAMPTZ(arg0, arg1);
	}

	public void setTIMESTAMPTZAtName(String arg0, TIMESTAMPTZ arg1)
			throws SQLException {
		_oracleStatement.setTIMESTAMPTZAtName(arg0, arg1);
	}

	public void setTimeAtName(String arg0, Time arg1) throws SQLException {
		_oracleStatement.setTimeAtName(arg0, arg1);
	}

	public void setTimestampAtName(String arg0, Timestamp arg1)
			throws SQLException {
		_oracleStatement.setTimestampAtName(arg0, arg1);
	}

	public void setURLAtName(String arg0, URL arg1) throws SQLException {
		_oracleStatement.setURLAtName(arg0, arg1);
	}

	public void setUnicodeStreamAtName(String arg0, InputStream arg1, int arg2)
			throws SQLException {
		_oracleStatement.setUnicodeStreamAtName(arg0, arg1, arg2);
	}

	public void clearDefines() throws SQLException {
		_oracleStatement.clearDefines();
	}

	public void closeWithKey(String arg0) throws SQLException {
		_oracleStatement.closeWithKey(arg0);
	}

	@SuppressWarnings("deprecation")
	public int creationState() {
		return _oracleStatement.creationState();
	}

	public void defineColumnType(int arg0, int arg1) throws SQLException {
		_oracleStatement.defineColumnType(arg0, arg1);
	}

	public void defineColumnType(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.defineColumnType(arg0, arg1, arg2);
	}

	public void defineColumnType(int arg0, int arg1, String arg2)
			throws SQLException {
		_oracleStatement.defineColumnType(arg0, arg1, arg2);
	}

	public void defineColumnType(int arg0, int arg1, int arg2, short arg3)
			throws SQLException {
		_oracleStatement.defineColumnType(arg0, arg1, arg2, arg3);
	}

	public void defineColumnTypeBytes(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.defineColumnTypeBytes(arg0, arg1, arg2);
	}

	public void defineColumnTypeChars(int arg0, int arg1, int arg2)
			throws SQLException {
		_oracleStatement.defineParameterTypeChars(arg0, arg1, arg2);
	}

	public int getRowPrefetch() {
		return _oracleStatement.getRowPrefetch();
	}

	public boolean isNCHAR(int arg0) throws SQLException {
		return _oracleStatement.isNCHAR(arg0);
	}

	public void setResultSetCache(OracleResultSetCache arg0)
			throws SQLException {
		_oracleStatement.setResultSetCache(arg0);
	}

	public void setRowPrefetch(int arg0) throws SQLException {
		_oracleStatement.setRowPrefetch(arg0);
	}

	public Reader getCharacterStream(String arg0) throws SQLException {
		return _oracleStatement.getCharacterStream(arg0);
	}

	public BFILE getBfile(int arg0) throws SQLException {
		return _oracleStatement.getBfile(arg0);
	}

	public InputStream getBinaryStream(String arg0) throws SQLException {
		return _oracleStatement.getBinaryStream(arg0);
	}

	public InputStream getUnicodeStream(String arg0) throws SQLException {
		return _oracleStatement.getUnicodeStream(arg0);
	}

	public void setARRAY(String arg0, ARRAY arg1) throws SQLException {
		_oracleStatement.setARRAY(arg0, arg1);
	}

	public void setArray(String arg0, Array arg1) throws SQLException {
		_oracleStatement.setArray(arg0, arg1);
	}

	public void setBFILE(String arg0, BFILE arg1) throws SQLException {
		_oracleStatement.setBFILE(arg0, arg1);
	}

	public void setBLOB(String arg0, BLOB arg1) throws SQLException {
		_oracleStatement.setBLOB(arg0, arg1);
	}

	public void setBfile(String arg0, BFILE arg1) throws SQLException {
		_oracleStatement.setBfile(arg0, arg1);
	}

	public void setBinaryDouble(String arg0, double arg1) throws SQLException {
		_oracleStatement.setBinaryDouble(arg0, arg1);
	}

	public void setBinaryFloat(String arg0, float arg1) throws SQLException {
		_oracleStatement.setBinaryFloat(arg0, arg1);
	}

	public void setBlob(String arg0, Blob arg1) throws SQLException {
		_oracleStatement.setBlob(arg0, arg1);
	}

	public void setCHAR(String arg0, CHAR arg1) throws SQLException {
		_oracleStatement.setCHAR(arg0, arg1);
	}

	public void setCLOB(String arg0, CLOB arg1) throws SQLException {
		_oracleStatement.setCLOB(arg0, arg1);
	}

	public void setClob(String arg0, Clob arg1) throws SQLException {
		_oracleStatement.setClob(arg0, arg1);
	}

	public void setCursor(String arg0, ResultSet arg1) throws SQLException {
		_oracleStatement.setCursor(arg0, arg1);
	}

	public void setCustomDatum(String arg0, CustomDatum arg1)
			throws SQLException {
		_oracleStatement.setCustomDatum(arg0, arg1);
	}

	public void setDATE(String arg0, DATE arg1) throws SQLException {
		_oracleStatement.setDATE(arg0, arg1);
	}

	public void setFixedCHAR(String arg0, String arg1) throws SQLException {
		_oracleStatement.setFixedCHAR(arg0, arg1);
	}

	public void setINTERVALDS(String arg0, INTERVALDS arg1) throws SQLException {
		_oracleStatement.setINTERVALDS(arg0, arg1);
	}

	public void setINTERVALYM(String arg0, INTERVALYM arg1) throws SQLException {
		_oracleStatement.setINTERVALYM(arg0, arg1);
	}

	public void setNUMBER(String arg0, NUMBER arg1) throws SQLException {
		_oracleStatement.setNUMBER(arg0, arg1);
	}

	public void setOPAQUE(String arg0, OPAQUE arg1) throws SQLException {
		_oracleStatement.setOPAQUE(arg0, arg1);
	}

	public void setORAData(String arg0, ORAData arg1) throws SQLException {
		_oracleStatement.setORAData(arg0, arg1);
	}

	public void setOracleObject(String arg0, Datum arg1) throws SQLException {
		_oracleStatement.setOracleObject(arg0, arg1);
	}

	public void setRAW(String arg0, RAW arg1) throws SQLException {
		_oracleStatement.setRAW(arg0, arg1);
	}

	public void setREF(String arg0, REF arg1) throws SQLException {
		_oracleStatement.setREF(arg0, arg1);
	}

	public void setROWID(String arg0, ROWID arg1) throws SQLException {
		_oracleStatement.setROWID(arg0, arg1);
	}

	public void setRef(String arg0, Ref arg1) throws SQLException {
		_oracleStatement.setRef(arg0, arg1);
	}

	public void setRefType(String arg0, REF arg1) throws SQLException {
		_oracleStatement.setRefType(arg0, arg1);
	}

	public void setSTRUCT(String arg0, STRUCT arg1) throws SQLException {
		_oracleStatement.setSTRUCT(arg0, arg1);
	}

	public void setStructDescriptor(String arg0, StructDescriptor arg1)
			throws SQLException {
		_oracleStatement.setStructDescriptor(arg0, arg1);
	}

	public void setTIMESTAMP(String arg0, TIMESTAMP arg1) throws SQLException {
		_oracleStatement.setTIMESTAMP(arg0, arg1);
	}

	public void setTIMESTAMPLTZ(String arg0, TIMESTAMPLTZ arg1)
			throws SQLException {
		_oracleStatement.setTIMESTAMPLTZ(arg0, arg1);

	}

	public void setTIMESTAMPTZ(String arg0, TIMESTAMPTZ arg1)
			throws SQLException {
		_oracleStatement.setTIMESTAMPTZ(arg0, arg1);
	}

	public void setUnicodeStream(String arg0, InputStream arg1, int arg2)
			throws SQLException {
		_oracleStatement.setUnicodeStream(arg0, arg1, arg2);
	}

	public void setDateAtName(String arg0, Date arg1, Calendar arg2)
			throws SQLException {
		_oracleStatement.setDateAtName(arg0, arg1, arg2);
	}

	public void setTimeAtName(String arg0, Time arg1, Calendar arg2)
			throws SQLException {
		_oracleStatement.setTimeAtName(arg0, arg1, arg2);
	}

	public void setTimestampAtName(String arg0, Timestamp arg1, Calendar arg2)
			throws SQLException {
		_oracleStatement.setTimestampAtName(arg0, arg1, arg2);
	}

	public int getLobPrefetchSize() {
		return _oracleStatement.getLobPrefetchSize();
	}

	public long getRegisteredQueryId() throws SQLException {
		return _oracleStatement.getRegisteredQueryId();
	}

	public String[] getRegisteredTableNames() throws SQLException {
		return _oracleStatement.getRegisteredTableNames();
	}

	public void setDatabaseChangeRegistration(DatabaseChangeRegistration arg0)
			throws SQLException {
		_oracleStatement.setDatabaseChangeRegistration(arg0);
	}

	public void setLobPrefetchSize(int arg0) throws SQLException {
		_oracleStatement.setLobPrefetchSize(arg0);
	}
}
